package com.xhgj.thread;

import java.util.Timer;
import java.util.TimerTask;

/**
 * @author 周宇
 * @create 2020-06-27 22:20
 * 停止线程
 * 1、建议线程正常停止
 * 2、建议使用标志位
 * 3、不建议使用过期的JDK方法stop/destory等
 */
public class StopThread implements Runnable {

    //1、定义一个标志位
    boolean flag = true;
    int count;

    @Override
    public void run() {
        while (flag) {
            System.out.println("跑步，run跑了-->" + count++ + "步");
        }
    }

    //2、设置公开的停止方法
    public void stop() {
        flag = false;
    }

    public static void main(String[] args) {
        StopThread p = new StopThread();
        new Thread(p).start();
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            int timeno = 0;

            @Override
            public void run() {
                timeno++;
                System.err.println("timeno:" + timeno);
                if (timeno == 10) {
                    p.stop();
                    timer.cancel();
                    System.out.println("线程停止,关闭定时器");
                }
            }
        }, 0, 100);
    }
}
